home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-02 / drawer.zip / COLORBAR.PAS < prev    next >
Pascal/Delphi Source File  |  1993-01-04  |  1KB  |  77 lines

  1. {$L-,D-}
  2. unit ColorBars;
  3.  
  4. interface
  5.  
  6. type
  7.  
  8.     ColorBar = object
  9.                     MaxColor : word;
  10.                     CurColor : word;
  11.                     ch, cw   : word;
  12.                     procedure Initialize( ch, cw, mc : word);
  13.                     procedure SetColor( c : word);
  14.                     function  GetColor : word;
  15.                     procedure Draw;
  16.                     procedure Erase;
  17.                     function  PtInRegion( px, py : word) : boolean;
  18.                     procedure Process( px, py : word);
  19.                 end;
  20.  
  21. implementation
  22.  
  23. uses
  24.     MSGraph;
  25.  
  26. procedure ColorBar.Initialize( ch, cw, mc : word);
  27. begin
  28.     self.MaxColor := mc;
  29.     self.ch       := ch;
  30.     self.cw       := cw;
  31.     self.CurColor := mc-1;
  32. end;
  33.  
  34. procedure ColorBar.Draw;
  35. var
  36.     n : word;
  37. begin
  38.     _SetWriteMode(_GPSET);
  39.     with self do for n := 0 to MaxColor-1 do begin
  40.         _SetColor(MaxColor-1);
  41.         _Rectangle( _GBORDER, 0, n*ch, cw, (n+1)*ch);
  42.         _SetColor(n);
  43.         _Rectangle( _GFILLINTERIOR, 1, n*ch+1, cw-1, (n+1)*ch-1);
  44.         end;
  45. end;
  46.  
  47. procedure ColorBar.Erase;
  48. begin
  49.     _SetColor(0);
  50.     _Rectangle( _GFILLINTERIOR, 0, 0, self.cw, self.MaxColor*self.ch);
  51. end;
  52.  
  53. function ColorBar.PtInRegion( px, py : word) : boolean;
  54. begin
  55.     PtInRegion := (px<=self.cw) and (py<=(self.MaxColor*self.ch));
  56. end;
  57.  
  58. procedure ColorBar.Process( px, py : word);
  59. begin
  60.     self.CurColor := py div self.ch;
  61. end;
  62.  
  63. function ColorBar.GetColor : word;
  64. begin
  65.     GetColor := self.CurColor;
  66. end;
  67.  
  68. procedure ColorBar.SetColor( c : word);
  69. begin
  70.     self.CurColor := c;
  71. end;
  72.  
  73. begin
  74. end.
  75.  
  76.  
  77.